---
id: lora
title: LoRa Configuration
sidebar_label: LoRa
description: Understanding the LoRa configuration settings on your Meshtastic device including region, modem, hop limit, and more.
---

import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";
import { Icon } from "@iconify/react";
import LoRaRegions from "../../blocks/_lora-regions.mdx";

The LoRa config options are: Region, Use Preset, Modem Preset, Max Hops, Transmit Power, Bandwidth, Spread Factor, Coding Rate, Frequency Offset, Transmit Enabled, Frequency Slot, Ignore Incoming Array, Ignore MQTT, Override Duty Cycle Limit, SX126x RX Boosted Gain, Override Frequency, and PA Fan Disabled. LoRa config uses an admin message sending a `Config.LoRa` protobuf.

:::note
In order to communicate fully, devices within a mesh must have identical settings for Region and Modem Preset, or identical custom Modem settings.
:::

## LoRa Config Values

:::note
You must set your device's `lora.region` setting. This will ensure that you are operating within the legal limits for your area.
:::

### Region

Sets the region for your node. Default is `unset`. As long as this is not set, the node screen will display a message and not transmit any packets.

<LoRaRegions />

### Use Preset

When enabled, the `Modem Preset` fields will be adhered to, else the `Bandwidth`/`Spread Factor`/`Coding Rate` will be taken from their respective manually defined fields.

### Modem Preset

Default is `unset` which equates to `LONG_FAST`. Presets are pre-defined modem settings (Bandwidth, Spread Factor, and Coding Rate) which influence both message speed and range. The default will provide a strong mixture of speed and range, for most users.

The presets are designed to provide further options for optimizing either speed (and reduced network congestion) or range, which can be useful for two real world scenarios:

1. A high number of devices exist in the mesh, or messages are sent very frequently. Faster speeds (and therefore lower radio time per device) can help with mesh network congestion.
2. Maximum range is desired, for long range scenarios where a several second delay in message receipt is acceptable (for instance, attempting to send messages from a town to a distant mountain top).

The Presets available are as follows, and follow a linear pattern of Fastest \<\-\-\> Slowest, and Shortest \<\-\-\> Longest range:

1. `SHORT_TURBO` (Fastest, highest bandwidth, lowest airtime, shortest range. It is not legal to use in all regions due to it's 500kHz bandwidth.)

2. `SHORT_FAST`

3. `SHORT_SLOW`

4. `MEDIUM_FAST`

5. `MEDIUM_SLOW`

6. `LONG_FAST` (Default)

7. `LONG_MODERATE`

8. `LONG_SLOW`

9. `VERY_LONG_SLOW` (Slowest, lowest bandwidth, highest airtime, longest range. Not recommended for regular usage as does not form meshes well and is unreliable)

### Max Hops

Maximum number of hops. This can't be greater than 7. Default is 3 which should be fine for most applications. _**Really, 3 is fine.**_

![Hop Count](/img/configuration/max-hops.webp)

### Transmit Power

If zero, then use default max legal continuous power (i.e. something that won't burn out the radio hardware)

In most cases you should use zero here. Units are in dBm.

### Bandwidth

Certain bandwidth numbers are 'special' and will be converted by the device firmware to the appropriate floating point value:

| Special Value | Interpreted As |
| :-----------: | :------------: |
|      31       |   31.25 kHz    |
|      62       |    62.5 kHz    |
|      200      |  203.125 kHz   |
|      400      |   406.25 kHz   |
|      800      |   812.5 kHz    |
|     1600      |   1625.0 kHz   |

Please be aware that values < 62.5kHz may require a TCXO on some hardware devices.

### Spread Factor

A number from 7 to 12. Indicates the number of chirps per symbol as 1[\<\<]spread_factor.

### Coding Rate

The denominator of the coding rate. ie for 4/5, the value is 5. 4/8 the value is 8.

### Frequency Offset

This parameter is for advanced users with advanced test equipment, we do not recommend most users use it.

A frequency offset that is added to the calculated band center frequency. Used to correct for crystal calibration errors.

### Transmit Enabled

Allows you to enable and disable transmit (TX) from the LoRa radio. Useful for hot-swapping antennas and other tests.

Defaults to true

### Frequency Slot

This setting controls the actual hardware frequency at which the radio transmits, represented by a frequency slot between 1 and NUM_SLOTS (the maximum for the current region and modem preset). If set to `0`/UNSET, the device reverts to the older channel name hash-based algorithm for determining the frequency slot.

### Ignore Incoming Array

For testing it is useful sometimes to force a node to never listen to particular other nodes (simulating radio out of range). All nodenums listed in the ignore_incoming array will have packets they send dropped on receive (by router.cpp)

### Ignore MQTT

Setting this to option to 'true' means the device will ignore any messages it receives via LoRa that came via MQTT somewhere along the path towards the device. Note this only works when your device and the MQTT node are running at least firmware version 2.2.19.

### OK to MQTT

Acceptable values: `true`, `false`

Default is `false`. When set to `true`, this configuration indicates that the user approves their packets to be uplinked to MQTT brokers. If set to `false`, nodes receiving your packets are requested not to forward packets to MQTT. This configuration only applies to Channels configured with the `defaultpsk` and `eventpsk` keys set in the Meshtastic Firmware; Channels with custom keys ignore this setting.

**Important:** This is not a cryptographic solution but a polite request that is enforced in the official firmware.

### Override Duty Cycle Limit

Setting this option to 'true' means the device will ignore the hourly duty cycle limit in Europe. This means that you might violate regulations if the device transmits too much. By default, this option is set to 'false,' which means the device will stop sending data when it reaches the hourly limit and will start again when it is allowed to do so.

### SX126x RX Boosted Gain

This is an option specific to the SX126x chip series which allows the chip to consume a small amount of additional power to increase RX sensitivity.

### Override Frequency

This parameter is for advanced users and licensed HAM radio operators. When enabled, the channel calculation will be ignored, and the set frequency will be used instead (frequency_offset still applies). This will allow you to use out-of-band frequencies. Please respect your local laws and regulations. If you are a license HAM operator, make sure you enable HAM mode and turn off encryption.

### PA Fan Disabled

If true, disable the built-in PA FAN using pin define in RF95_FAN_EN.

## LoRa Config Client Availability

<Tabs
  groupId="settings"
  defaultValue="apple"
  values={[
    {
      label: (
        <>
          <Icon icon="mdi:android" height="1.5rem" style={{ marginRight: "0.25rem" }} /> Android
        </>
      ),
      value: "android",
    },
    {
      label: (
        <>
          <Icon icon="mdi:apple" height="1.5rem" style={{ marginRight: "0.25rem" }} /> Apple
        </>
      ),
      value: "apple",
    },
    {
      label: (
        <>
          <Icon icon="mdi:terminal" height="1.5rem" style={{ marginRight: "0.25rem" }} /> CLI
        </>
      ),
      value: "cli",
    },
    {
      label: (
        <>
          <Icon icon="mdi:internet" height="1.5rem" style={{ marginRight: "0.25rem" }} /> Web
        </>
      ),
      value: "web",
    },
  ]}>
<TabItem value="android">

#### Android

:::info

LoRa Config options are available on Android.

1. Open the Meshtastic App
2. Navigate to: **Settings >  LoRa**

:::

</TabItem>
<TabItem value="apple">

#### Apple

:::info
All LoRa config options are available on iOS, iPadOS and macOS at Settings > Radio Configuration > LoRa.
:::

</TabItem>
<TabItem value="cli">

#### CLI

:::info

LoRa config commands are available in the python CLI. Example commands are below:

:::

|           Setting           |                                                                     Acceptable Values                                                                     |   Default   |
| :-------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------: |
|      lora.modem_preset      |                    `LONG_FAST`, `LONG_SLOW`, `VERY_LONG_SLOW`, `MEDIUM_SLOW`, `MEDIUM_FAST`, `SHORT_SLOW`, `SHORT_FAST`, `SHORT_TURBO`                    | `LONG_FAST` |
|       lora.use_preset       |                                                                      `false`, `true`                                                                      |   `false`   |
|        lora.region         | `UNSET`, `US`, `EU_433`, `EU_868`, `CN`, `JP`, `ANZ`, `ANZ_433`, `KR`, `TW`, `RU` ,`IN`, `NZ_865`, `TH`, `LORA_24`, `UA_433`, `UA_868`, `MY_433`, `MY_919`, `SG_923`, `KZ_433`, `KZ_863`, `BR_902`, `NP_865` |   `UNSET`   |
|       lora.bandwidth        |                                                              `31`, `62`, `125`, `250`, `500`                                                              |    `250`    |
|     lora.spread_factor      |                                                              `7`, `8`, `9`, `10`, `11`, `12`                                                              |    `12`     |
|      lora.coding_rate       |                                                                    `5`, `6`, `7`, `8`                                                                     |     `8`     |
|    lora.frequency_offset    |                                                                     `0` to `1000000`                                                                      |     `0`     |
|       lora.hop_limit        |                                                                `1`,`2`,`3`,`4`,`5`,`6`,`7`                                                                |     `3`     |
|        lora.tx_power        |                                                                        `0` to `30`                                                                        |     `0`     |
|       lora.tx_enabled       |                                                                      `false`, `true`                                                                      |   `true`    |
|      lora.channel_num       |                                                                `0`, `1` to `NUM_CHANNELS`                                                                 |     `0`     |
|      lora.ignore_mqtt       |                                                                      `false`, `true`                                                                      |   `false`   |
|   lora.config_ok_to_mqtt    |                                                                      `true`, `false`                                                                      |   `false`   |
|  lora.override_duty_cycle   |                                                                      `false`, `true`                                                                      |   `false`   |
| lora.sx126x_rx_boosted_gain |                                                                      `false`, `true`                                                                      |   `false`   |
|   lora.override_frequency   |                             Any supported frequency the LoRA radio is capable of. Please respect local rules and regulations                              |     `0`     |

:::tip

Because the device will reboot after each command is sent via CLI, it is recommended when setting multiple values in a config section that commands be chained together as one.

```shell title="Example:"
meshtastic --set lora.region US --set lora.modem_preset LONG_FAST
```

:::

```shell title="Set Modem Preset"
meshtastic --set lora.modem_preset LONG_FAST
meshtastic --set lora.modem_preset MEDIUM_FAST
```

```shell title="Set Region"
meshtastic --set lora.region US
meshtastic --set lora.region EU_433
```

```shell title="Set Hop Limit"

meshtastic --set lora.hop_limit 2
```

```shell title="Override Duty Cycle"
meshtastic --set lora.override_duty_cycle true
meshtastic --set lora.override_duty_cycle false
```

</TabItem>
<TabItem value="web">

#### Web

:::info
All LoRa config options are available in the Web UI.
:::

</TabItem>
</Tabs>
